import { defineConfig, globalIgnores } from 'eslint/config'

import globals from 'globals'

import js from '@eslint/js'

import pluginVue from 'eslint-plugin-vue'

import eslintConfigPrettier from 'eslint-config-prettier/flat'

import prettierRecommeded from 'eslint-plugin-prettier/recommended'

import skipFormatting from '@vue/eslint-config-prettier/skip-formatting'

export default defineConfig([
  {
    name: 'app/files-to-lint',

    files: ['**/*.{js,mjs,jsx,vue}']
  },

  globalIgnores(['**/dist/**', '**/dist-ssr/**', '**/coverage/**']),

  {
    languageOptions: {
      globals: {
        ...globals.browser,

        ...globals.node
      }
    }
  },

  {
    rules: {
      semi: ['error', 'never']
    }
  },

  js.configs.recommended,

  ...pluginVue.configs['flat/essential'],

  skipFormatting,

  eslintConfigPrettier,

  prettierRecommeded
])
